1 //P es un polĂgono ordenado anticlockwise.
2 //Si es clockwise, retorna el area negativa.
3 //Si no esta ordenado retorna pura mierda.
5 double PolygonArea(const vector
<point
> &p
){
7 for (int i
=0; i
<p
.size(); ++i
){
8 int j
= (i
+1) % p
.size();
9 r
+= p
[i
].x
*p
[j
].y
- p
[j
].x
*p
[i
].y
;